package com.yuw.listdemo;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class TestDriver {

	public static void main(String[] args) {
		test02();
	}
	/**
	 * ArrayList实现类
	 */
	private static void test02() {
		// ArrayList元素的存储和读取操作
		// 创建一个ArrayList的是实例对象
		// 面向接口的编程：左侧是接口父类，右侧是实现子类的实例对象（多态：父类指代子类）
		List lst = new LinkedList();
		// 存入元素
		// 存入元素对象
		lst.add("zhangsan");
		lst.add("lisi");
		lst.add("lisi");//
		lst.add(null);
		lst.add(null);
		lst.add("wangwu");
		
		System.out.println("增强型的for循环遍历取出ArrayList集合中的元素：");
		for (Object object : lst) {
			System.out.println(object);
		}
		
		System.out.println("使用迭代器循环遍历取出ArrayList集合中的元素：");
		// 获取当前集合对象的迭代器对象
		Iterator it = lst.iterator();
		// 迭代器的 hasNext方法判定有么有下一个元素对象；
		// 迭代器的 next方法获取下一个元素对象，并将迭代器迭代位置（指针）向后挪动一个偏移量
		while(it.hasNext()) {
			System.out.println(it.next());
		}
		
		System.out.println("使用for循环遍历取出ArrayList集合中的元素：");
		for(int i=0;i<lst.size();i++) {
			System.out.println(lst.get(i));
		}
	}
	/**
	 * ArrayList实现类
	 */
	private static void test01() {
		// ArrayList元素的存储和读取操作
		// 创建一个ArrayList的是实例对象
		// 面向接口的编程：左侧是接口父类，右侧是实现子类的实例对象（多态：父类指代子类）
		List lst = new ArrayList();
		// 存入元素
		// 存入元素对象
		lst.add("zhangsan");
		lst.add("lisi");
		lst.add("lisi");//
		lst.add(null);
		lst.add(null);
		lst.add("wangwu");
		
		System.out.println("增强型的for循环遍历取出ArrayList集合中的元素：");
		for (Object object : lst) {
			System.out.println(object);
		}
		
		System.out.println("使用迭代器循环遍历取出ArrayList集合中的元素：");
		// 获取当前集合对象的迭代器对象
		Iterator it = lst.iterator();
		// 迭代器的 hasNext方法判定有么有下一个元素对象；
		// 迭代器的 next方法获取下一个元素对象，并将迭代器迭代位置（指针）向后挪动一个偏移量
		while(it.hasNext()) {
			System.out.println(it.next());
		}
		
		System.out.println("使用for循环遍历取出ArrayList集合中的元素：");
		for(int i=0;i<lst.size();i++) {
			System.out.println(lst.get(i));
		}
	}
}
